ANDROID: sched: Add vendor hook for rt util update
Vendor may have need to track rt util.
Bug: 201261299
Signed-off-by: Rick Yiu <rickyiu@google.com>
Change-Id: I2f4e5142c6bc8574ee3558042e1fb0dae13b702d
diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c
index 0bd6030..c60e6ff 100644
--- a/drivers/android/vendor_hooks.c
+++ b/drivers/android/vendor_hooks.c
@@ -393,3 +393,4 @@
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_remove_entity_load_avg);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_blocked_fair);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_rt_rq_load_avg);
diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h
index 445484f..f459ec7 100644
--- a/include/trace/hooks/sched.h
+++ b/include/trace/hooks/sched.h
@@ -425,6 +425,10 @@
TP_PROTO(struct rq *rq),
TP_ARGS(rq), 1);
+DECLARE_RESTRICTED_HOOK(android_rvh_update_rt_rq_load_avg,
+ TP_PROTO(u64 now, struct rq *rq, struct task_struct *tsk, int running),
+ TP_ARGS(now, rq, tsk, running), 1);
+
/* macro versions of hooks are no longer required */
#endif /* _TRACE_HOOK_SCHED_H */
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index d7e7397..3e18665 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -1685,6 +1685,7 @@
*/
if (rq->curr->sched_class != &rt_sched_class)
update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 0);
+ trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 0);
rt_queue_push_tasks(rq);
}
@@ -1737,6 +1738,7 @@
update_curr_rt(rq);
update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 1);
+ trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 1);
/*
* The previous task needs to be made eligible for pushing
@@ -2500,6 +2502,7 @@
update_curr_rt(rq);
update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 1);
+ trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 1);
watchdog(rq, p);